package com.leyou.common.advice;

import com.leyou.common.exceptions.ExceptionResult;
import com.leyou.common.exceptions.LyException;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

/**
 * @author: guojy
 * @date: 2020/2/28 15:53
 * @Description: spring会捕获到所有的RuntimeException，需要引入一个注解，由于是spring的注解，所以要引入
 * spring web 依赖
 * <artifactId>spring-web</artifactId>
 * @version:
 */

@ControllerAdvice //监听controller异常信息
public class BasicException {
    // 指定捕获的异常类型
    @ExceptionHandler(LyException.class)
    public ResponseEntity<ExceptionResult> handlException(LyException e) {
        // 修改 BasicException 返回值不从异常里边取，而是返回异常信息对象
        return ResponseEntity.status(e.getStatus()).body(new ExceptionResult(e));
    }
}
